#region Using Directives

#endregion Using Directives

#region Using Directives

#endregion Using Directives

#region

using System;
using System.Configuration.Provider;
using System.Web;
using BuildMotion.MotionTracker.Common;

#endregion

namespace BuildMotion.MotionTracker.Provider
{
	/// <summary>
	/// The abstract definition for the MotionTracker provider.
	/// </summary>
	public abstract class MotionTrackerProvider : ProviderBase
	{
		#region Fields

		#endregion

		#region  Events

		#endregion

		#region Methods

		/// <summary>
		/// Tracks the request.
		/// </summary>
		/// <param name="application">The application.</param>
		public abstract void TrackRequest(HttpApplication application);

		/// <summary>
		/// Tracks the request.
		/// </summary>
		/// <param name="application">The application.</param>
		/// <param name="trackerId">The tracker id.</param>
		/// <param name="originId">The origin id.</param>
		public abstract void TrackRequest(HttpApplication application, Guid trackerId, Guid originId);

		/// <summary>
		/// Use to get the application name from the Provider.
		/// </summary>
		/// <returns>Returns the name of the application.</returns>
		public abstract string GetApplicationName();

		#endregion

		#region Properties

		public abstract string ApplicationName
		{
			get;
			set;
		}

		#endregion

		/// <summary>
		/// Saves the tag.
		/// </summary>
		/// <param name="tagContext">The tag context.</param>
		/// <returns></returns>
		//public abstract TagContext SaveTag(TagContext tagContext);
	}
}